// 微信小程序一键登录示例代码
// 在小程序页面中调用

/**
 * 微信小程序一键登录
 */
function wechatMiniappLogin() {
  // 1. 调用微信登录接口获取 code
  wx.login({
    success: function(loginRes) {
      if (loginRes.code) {
        console.log('获取登录凭证成功：', loginRes.code);
        
        // 2. 获取用户信息（可选）
        wx.getUserProfile({
          desc: '用于完善用户资料',
          success: function(userRes) {
            console.log('获取用户信息成功：', userRes.userInfo);
            
            // 3. 调用后端登录接口
            const loginData = {
              authType: 'WECHAT_MINIAPP',
              clientId: 'your_client_id', // 替换为实际的客户端ID
              code: loginRes.code,
              nickname: userRes.userInfo.nickName,
              avatar: userRes.userInfo.avatarUrl,
              gender: userRes.userInfo.gender
            };
            
            // 发送登录请求
            wx.request({
              url: 'http://localhost:8000/auth/wechat/miniapp/login', // 替换为实际的后端地址
              method: 'POST',
              header: {
                'Content-Type': 'application/json'
              },
              data: loginData,
              success: function(res) {
                console.log('登录成功：', res.data);
                
                if (res.data.code === 200) {
                  // 登录成功，保存 token
                  const token = res.data.data.token;
                  const tenantId = res.data.data.tenantId;
                  
                  // 保存到本地存储
                  wx.setStorageSync('token', token);
                  wx.setStorageSync('tenantId', tenantId);
                  
                  // 跳转到主页面
                  wx.switchTab({
                    url: '/pages/index/index'
                  });
                  
                  wx.showToast({
                    title: '登录成功',
                    icon: 'success'
                  });
                } else {
                  wx.showToast({
                    title: res.data.message || '登录失败',
                    icon: 'error'
                  });
                }
              },
              fail: function(error) {
                console.error('登录请求失败：', error);
                wx.showToast({
                  title: '网络错误，请重试',
                  icon: 'error'
                });
              }
            });
          },
          fail: function(error) {
            console.error('获取用户信息失败：', error);
            
            // 即使获取用户信息失败，也可以进行登录（不带用户信息）
            const loginData = {
              authType: 'WECHAT_MINIAPP',
              clientId: 'your_client_id',
              code: loginRes.code
            };
            
            wx.request({
              url: 'http://localhost:8000/auth/wechat/miniapp/login',
              method: 'POST',
              header: {
                'Content-Type': 'application/json'
              },
              data: loginData,
              success: function(res) {
                // 处理登录结果...
                console.log('登录结果：', res.data);
              }
            });
          }
        });
      } else {
        console.error('获取登录凭证失败：', loginRes.errMsg);
        wx.showToast({
          title: '获取登录凭证失败',
          icon: 'error'
        });
      }
    },
    fail: function(error) {
      console.error('微信登录失败：', error);
      wx.showToast({
        title: '微信登录失败',
        icon: 'error'
      });
    }
  });
}

/**
 * 检查登录状态
 */
function checkLoginStatus() {
  const token = wx.getStorageSync('token');
  if (token) {
    // 验证 token 是否有效
    wx.request({
      url: 'http://localhost:8000/auth/user/info',
      method: 'GET',
      header: {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
      },
      success: function(res) {
        if (res.data.code === 200) {
          console.log('用户已登录：', res.data.data);
          return true;
        } else {
          // token 无效，清除本地存储
          wx.removeStorageSync('token');
          wx.removeStorageSync('tenantId');
          return false;
        }
      },
      fail: function() {
        return false;
      }
    });
  }
  return false;
}

/**
 * 退出登录
 */
function logout() {
  const token = wx.getStorageSync('token');
  if (token) {
    wx.request({
      url: 'http://localhost:8000/auth/logout',
      method: 'POST',
      header: {
        'Authorization': 'Bearer ' + token,
        'Content-Type': 'application/json'
      },
      success: function(res) {
        console.log('退出登录成功：', res.data);
      },
      complete: function() {
        // 无论成功失败都清除本地存储
        wx.removeStorageSync('token');
        wx.removeStorageSync('tenantId');
        
        // 跳转到登录页面
        wx.redirectTo({
          url: '/pages/login/login'
        });
      }
    });
  }
}

// 导出函数供页面使用
module.exports = {
  wechatMiniappLogin,
  checkLoginStatus,
  logout
};